ActiveSync Device Wipe in ECP Fails w/ Script Error "Message: Function expected"
I am attempting to test the EAS Device Wipe via ECP. When I click the button to begin the device wipe it pops up the normal warning and when I hit OK an error box pops up and presents the following (very long) error. This is occuring in all of the 7 sites
that I have exchange 2010 sp1 Ru2 installed. I have tested with multiple admin accounts as well as multiple user accounts with devices. Device wipe completes successfully when performed via the shell.
Anyone ever come across this error?
Client Information
------------------
User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)
CPU Class: x86
Platform: Win32
System Language: en-us
User Language: en-US
CookieEnabled: true
-----------------
Exception Details
-----------------
Date: Wed Mar 16 12:41:13 CST 2011
Message: Function expected
Url: https://server.domain.local/ecp/14.1.270.1/Scripts/list.js
Line: 20
Call Stack
----------
anonymous($p1_0,$p1_1)
-----------------------
function($p1_0,$p1_1){
$0($p1_1,'Wipe',Strings.WipePendingPendingDisplayText);}
-----------------------
anonymous()
-----------------------
function(){return b.apply(a,arguments)}
-----------------------
anonymous($p0)
-----------------------
function($p0){this.get_modalDialog().close();if(this.$1_13){this.$1_13($p0,this.$1_14);}this.onClose();}
-----------------------
anonymous($p0)
-----------------------
function($p0){var $0=this.$1_7($p0.target);if($0&&!$0.disabled){var $1=$0.getAttribute('buttontype');this.onButtonClicked($1);}else{this.onClick($p0);}}
-----------------------
anonymous($p0)
-----------------------
function($p0){if(this.$2_4){this.$2_4.$1_4($p0);}}
-----------------------
anonymous()
-----------------------
function(){return b.apply(a,arguments)}
-----------------------
anonymous()
-----------------------
function(){var b={};try{b=Sys.UI.DomElement._getWindow(a).event}catch(c){}return e.call(a,new Sys.UI.DomEvent(b))}
-----------------------
Dump Event
----------
recordset = null
type = error
fromElement = null
toElement = null
altLeft = false
keyCode = 0
repeat = false
reason = 0
data =
behaviorCookie = 0
source = null
contentOverflow = false
behaviorPart = 0
url =
dataTransfer = null
ctrlKey = false
shiftLeft = false
dataFld =
returnValue = undefined
qualifier =
wheelDelta = 0
bookmarks = null
button = 0
srcFilter = null
nextPage =
cancelBubble = false
x = 0
y = 0
srcElement = null
screenX = 1052
screenY = 562
srcUrn =
origin =
boundElements = [object]
clientX = 525
clientY = 291
propertyName =
shiftKey = false
ctrlLeft = false
offsetX = 0
offsetY = 0
altKey = false
errorMessage = Function expected
errorUrl =
https://server.domain.local/ecp/14.1.270.1/Scripts/list.js
errorLine = 20
errorCharacter = 1
errorCode = 0
Detailed Call Stack
-------------------
anonymous($p1_0,$p1_1)
$p1_0 = 'OK'
$p1_1 = [object Object]
invokeDefaultItem = function(focusAfterInvoke){if(this.isDefault&&this.get_enabled()){this.invoke(focusAfterInvoke);return true;}return false;}
forceUpdateEnabled = function(){this.set_$3(this.$0.get_enabled()&&this.$2);}
set_confirmMessageInfo = function(value){this.$7=value;return value;}
get_confirmMessageInfo = function(){return this.$7;}
get_useCustomConfirmDialog = function(){return this.$6;}
get_text = function(){return EcpUtil.getInnerText(this.linkElement.getElementsByTagName('SPAN')[0]);}
get_targetObjectName = function(){return this.$5;}
set_targetObjects = function(value){this.$4=value;return value;}
get_targetObjects = function(){return this.$4;}
$7 = null
$4 = [object Object]
name = WipeDevice
isDefault = false
selectionMode = RequiresSingleSelection
handler = function($_){ return WipeDeviceCommandHandler($_)}
refreshAction = SingleRow
condition = function($_){ return $_.IsRemoteWipeSupported && $_.DeviceStatusIsOK && $_.PendingCommand != 'Wipe'}
groupId = WipeCommandGroup
hideOnDisable = false
hidden = false
confirmDialogIcon = Warning
singleSelectionConfirmMessage =
selectionConfirmMessageDetail =
multiSelectionConfirmMessage =
set_useCustomConfirmDialog = function(value){this.$6=value;return value;}
$6 = false
selectionParameterName =
showAddressBar = false
showMenuBar = false
showStatusBar = false
showToolBar = false
resizable = false
singleInstance = false
navigateUrl =
targetFrame =
position =
dialogHeight =
dialogWidth =
actionName =
set_toolBar = function(value){this.$0=value;return value;}
$0 = [object Object]
set_element = function(value){if(this.get_element()!==value){ToolBarButton.callBaseMethod(this, 'set_element',[value]);if(this.get_element()){this.linkElement=this.get_element().getElementsByTagName('A')[0];if(!this.get_$3()){AccUtil.disableLinkForScreenReader(this.linkElement);}}}return
value;}
get_element = function(){return ToolBarButton.callBaseMethod(this, 'get_element');}
$1 = [object]
linkElement =
https://server.domain.local/ecp/UsersGroups/EditEASMailbox.aspx?pwmcid=1&id=feaf16f8-d84c-4c6b-abb6-4a47b8c80d14#
get_$3 = function(){return ToolBarButton.callBaseMethod(this, 'get_$3');}
get_visible = function(){return this.get_element().style.display!=='none';}
changeEnabledStatus = function(selectedDataObjects,isEditing){var $0=true;var $1=selectedDataObjects.length;var $2=$1===1;var $3=$1>0;switch(this.selectionMode){case 'RequiresSingleSelection':$0=$0&&$2;break;case 'SupportsMultipleSelection':$0=$0&&$3;break;case
'RequiresSingleSelectionDisabledOnInlineEdit':$0=$0&&!isEditing&&$2;break;}for(var $4=0;$4<$1&&$0;$4++){$0=$0&&(!this.condition||this.condition(selectedDataObjects[$4]));}this.set_enabled($0);}
set_enabled = function(value){this.$2=value;this.set_$3(this.$0.get_enabled()&&value);return value;}
$2 = true
set_$3 = function($p0){if(this.get_$3()!==$p0){if($p0){AccUtil.enableLinkForScreenReader(this.linkElement);}else{AccUtil.disableLinkForScreenReader(this.linkElement);}}ToolBarButton.callBaseMethod(this, 'set_$3',[$p0]);return $p0;}
set_visible = function(value){this.get_element().style.display=(value&&!this.hidden)?'':'none';return value;}
updateSeparator = function(){for(var $0=1;$0<this.get_toolBar().get_Items().length;$0+=2){this.get_toolBar().get_Items()[$0].set_visible(this.get_toolBar().get_Items()[$0-1].get_visible());}if(!this.get_toolBar().get_Items()[this.get_toolBar().get_Items().length-1].get_visible()){for(var
$1=this.get_toolBar().get_Items().length-2;$1>0;$1-=2){if(this.get_toolBar().get_Items()[$1].get_visible()){this.get_toolBar().get_Items()[$1].set_visible(false);break;}}}}
get_toolBar = function(){return this.$0;}
setTargetObjects = function(name,targetObjects){if(this.selectionMode==='RequiresSingleSelection'||this.selectionMode==='SupportsMultipleSelection'){this.$5=name;this.$4=targetObjects;}}
$5 = iPad
getItemByName = function(name){if(this.name===name){return this;}return null;}
get_enabled = function(){return this.get_$3();}
invoke = function(focusAfterInvoke){if(!this.get_enabled()){return;}if(!this.handler){return;}var $0=null;var $1=null;if(this.multiSelectionConfirmMessage&&this.get_targetObjects().length>1){$0=String.format(this.multiSelectionConfirmMessage,this.$4.length);}else
if(this.singleSelectionConfirmMessage&&this.get_targetObjects().length===1){$0=String.format(this.singleSelectionConfirmMessage,this.$5);}if(this.selectionConfirmMessageDetail){$1=this.selectionConfirmMessageDetail;}var $2=DialogManager.hasVisibleModalDialog();if(!$0){this.$8();if(!$2&&DialogManager.hasVisibleModalDialog()){DialogManager.focusControlAfterClose(focusAfterInvoke,true);}else{EcpUtil.focusWithoutActivateWindow(focusAfterInvoke);}}else{if(!$2){DialogManager.focusControlAfterClose(focusAfterInvoke,true);}var
$3=new Info();$3.Message=$0;$3.Details=$1;$3.Icon=this.confirmDialogIcon||MessageBoxIcon.warning;if(this.get_useCustomConfirmDialog()){this.set_confirmMessageInfo($3);this.$8();}else{MessageBox.show($3,2,Function.createDelegate(this,function($p1_0,$p1_1){
if($p1_0==='Yes'){this.$8();}else{var $1_0=(window.self).CancelledCommandHandler;if($1_0){$1_0(this);}}}),null);}}}
$8 = function(){if(this.handler&&typeof(this.handler)==='function'){this.handler(this);}}
-----------------------
function($p1_0,$p1_1){
$0($p1_1,'Wipe',Strings.WipePendingPendingDisplayText);}
-----------------------
anonymous()
= 'OK',[object Object]
invokeDefaultItem = function(focusAfterInvoke){if(this.isDefault&&this.get_enabled()){this.invoke(focusAfterInvoke);return true;}return false;}
forceUpdateEnabled = function(){this.set_$3(this.$0.get_enabled()&&this.$2);}
set_confirmMessageInfo = function(value){this.$7=value;return value;}
get_confirmMessageInfo = function(){return this.$7;}
get_useCustomConfirmDialog = function(){return this.$6;}
get_text = function(){return EcpUtil.getInnerText(this.linkElement.getElementsByTagName('SPAN')[0]);}
get_targetObjectName = function(){return this.$5;}
set_targetObjects = function(value){this.$4=value;return value;}
get_targetObjects = function(){return this.$4;}
$7 = null
$4 = [object Object]
name = WipeDevice
isDefault = false
selectionMode = RequiresSingleSelection
handler = function($_){ return WipeDeviceCommandHandler($_)}
refreshAction = SingleRow
condition = function($_){ return $_.IsRemoteWipeSupported && $_.DeviceStatusIsOK && $_.PendingCommand != 'Wipe'}
groupId = WipeCommandGroup
hideOnDisable = false
hidden = false
confirmDialogIcon = Warning
singleSelectionConfirmMessage =
selectionConfirmMessageDetail =
multiSelectionConfirmMessage =
set_useCustomConfirmDialog = function(value){this.$6=value;return value;}
$6 = false
selectionParameterName =
showAddressBar = false
showMenuBar = false
showStatusBar = false
showToolBar = false
resizable = false
singleInstance = false
navigateUrl =
targetFrame =
position =
dialogHeight =
dialogWidth =
actionName =
set_toolBar = function(value){this.$0=value;return value;}
$0 = [object Object]
set_element = function(value){if(this.get_element()!==value){ToolBarButton.callBaseMethod(this, 'set_element',[value]);if(this.get_element()){this.linkElement=this.get_element().getElementsByTagName('A')[0];if(!this.get_$3()){AccUtil.disableLinkForScreenReader(this.linkElement);}}}return
value;}
get_element = function(){return ToolBarButton.callBaseMethod(this, 'get_element');}
$1 = [object]
linkElement =
https://server.domain.local/ecp/UsersGroups/EditEASMailbox.aspx?pwmcid=1&id=feaf16f8-d84c-4c6b-abb6-4a47b8c80d14#
get_$3 = function(){return ToolBarButton.callBaseMethod(this, 'get_$3');}
get_visible = function(){return this.get_element().style.display!=='none';}
changeEnabledStatus = function(selectedDataObjects,isEditing){var $0=true;var $1=selectedDataObjects.length;var $2=$1===1;var $3=$1>0;switch(this.selectionMode){case 'RequiresSingleSelection':$0=$0&&$2;break;case 'SupportsMultipleSelection':$0=$0&&$3;break;case
'RequiresSingleSelectionDisabledOnInlineEdit':$0=$0&&!isEditing&&$2;break;}for(var $4=0;$4<$1&&$0;$4++){$0=$0&&(!this.condition||this.condition(selectedDataObjects[$4]));}this.set_enabled($0);}
set_enabled = function(value){this.$2=value;this.set_$3(this.$0.get_enabled()&&value);return value;}
$2 = true
set_$3 = function($p0){if(this.get_$3()!==$p0){if($p0){AccUtil.enableLinkForScreenReader(this.linkElement);}else{AccUtil.disableLinkForScreenReader(this.linkElement);}}ToolBarButton.callBaseMethod(this, 'set_$3',[$p0]);return $p0;}
set_visible = function(value){this.get_element().style.display=(value&&!this.hidden)?'':'none';return value;}
updateSeparator = function(){for(var $0=1;$0<this.get_toolBar().get_Items().length;$0+=2){this.get_toolBar().get_Items()[$0].set_visible(this.get_toolBar().get_Items()[$0-1].get_visible());}if(!this.get_toolBar().get_Items()[this.get_toolBar().get_Items().length-1].get_visible()){for(var
$1=this.get_toolBar().get_Items().length-2;$1>0;$1-=2){if(this.get_toolBar().get_Items()[$1].get_visible()){this.get_toolBar().get_Items()[$1].set_visible(false);break;}}}}
get_toolBar = function(){return this.$0;}
setTargetObjects = function(name,targetObjects){if(this.selectionMode==='RequiresSingleSelection'||this.selectionMode==='SupportsMultipleSelection'){this.$5=name;this.$4=targetObjects;}}
$5 = iPad
getItemByName = function(name){if(this.name===name){return this;}return null;}
get_enabled = function(){return this.get_$3();}
invoke = function(focusAfterInvoke){if(!this.get_enabled()){return;}if(!this.handler){return;}var $0=null;var $1=null;if(this.multiSelectionConfirmMessage&&this.get_targetObjects().length>1){$0=String.format(this.multiSelectionConfirmMessage,this.$4.length);}else
if(this.singleSelectionConfirmMessage&&this.get_targetObjects().length===1){$0=String.format(this.singleSelectionConfirmMessage,this.$5);}if(this.selectionConfirmMessageDetail){$1=this.selectionConfirmMessageDetail;}var $2=DialogManager.hasVisibleModalDialog();if(!$0){this.$8();if(!$2&&DialogManager.hasVisibleModalDialog()){DialogManager.focusControlAfterClose(focusAfterInvoke,true);}else{EcpUtil.focusWithoutActivateWindow(focusAfterInvoke);}}else{if(!$2){DialogManager.focusControlAfterClose(focusAfterInvoke,true);}var
$3=new Info();$3.Message=$0;$3.Details=$1;$3.Icon=this.confirmDialogIcon||MessageBoxIcon.warning;if(this.get_useCustomConfirmDialog()){this.set_confirmMessageInfo($3);this.$8();}else{MessageBox.show($3,2,Function.createDelegate(this,function($p1_0,$p1_1){
if($p1_0==='Yes'){this.$8();}else{var $1_0=(window.self).CancelledCommandHandler;if($1_0){$1_0(this);}}}),null);}}}
$8 = function(){if(this.handler&&typeof(this.handler)==='function'){this.handler(this);}}
-----------------------
function(){return b.apply(a,arguments)}
-----------------------
anonymous($p0)
$p0 = 'OK'
-----------------------
function($p0){this.get_modalDialog().close();if(this.$1_13){this.$1_13($p0,this.$1_14);}this.onClose();}
-----------------------
anonymous($p0)
$p0 = [object Object]
stopPropagation = function(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();else if(window.event)this.rawEvent.cancelBubble=true}
preventDefault = function(){if(this.rawEvent.preventDefault)this.rawEvent.preventDefault();else if(window.event)this.rawEvent.returnValue=false}
type = click
rawEvent = [object]
altKey = false
button = 0
keyCode = 0
clientX = 525
clientY = 291
ctrlKey = false
target = [object]
offsetX = 25
offsetY = 6
screenX = 1052
screenY = 562
shiftKey = false
-----------------------
function($p0){var $0=this.$1_7($p0.target);if($0&&!$0.disabled){var $1=$0.getAttribute('buttontype');this.onButtonClicked($1);}else{this.onClick($p0);}}
-----------------------
anonymous($p0)
$p0 = [object Object]
stopPropagation = function(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();else if(window.event)this.rawEvent.cancelBubble=true}
preventDefault = function(){if(this.rawEvent.preventDefault)this.rawEvent.preventDefault();else if(window.event)this.rawEvent.returnValue=false}
type = click
rawEvent = [object]
altKey = false
button = 0
keyCode = 0
clientX = 525
clientY = 291
ctrlKey = false
target = [object]
offsetX = 25
offsetY = 6
screenX = 1052
screenY = 562
shiftKey = false
-----------------------
function($p0){if(this.$2_4){this.$2_4.$1_4($p0);}}
-----------------------
anonymous()
= [object Object]
stopPropagation = function(){if(this.rawEvent.stopPropagation)this.rawEvent.stopPropagation();else if(window.event)this.rawEvent.cancelBubble=true}
preventDefault = function(){if(this.rawEvent.preventDefault)this.rawEvent.preventDefault();else if(window.event)this.rawEvent.returnValue=false}
type = click
rawEvent = [object]
altKey = false
button = 0
keyCode = 0
clientX = 525
clientY = 291
ctrlKey = false
target = [object]
offsetX = 25
offsetY = 6
screenX = 1052
screenY = 562
shiftKey = false
-----------------------
function(){return b.apply(a,arguments)}
-----------------------
anonymous()
= [object]
recordset = null
type = error
fromElement = null
toElement = null
altLeft = false
keyCode = 0
repeat = false
reason = 0
data =
behaviorCookie = 0
source = null
contentOverflow = false
behaviorPart = 0
url =
dataTransfer = null
ctrlKey = false
shiftLeft = false
dataFld =
returnValue = undefined
qualifier =
wheelDelta = 0
bookmarks = null
button = 0
srcFilter = null
nextPage =
cancelBubble = false
x = 0
y = 0
srcElement = null
screenX = 1052
screenY = 562
srcUrn =
origin =
boundElements = [object]
clientX = 525
clientY = 291
propertyName =
shiftKey = false
ctrlLeft = false
offsetX = 0
offsetY = 0
altKey = false
-----------------------
function(){var b={};try{b=Sys.UI.DomElement._getWindow(a).event}catch(c){}return e.call(a,new Sys.UI.DomEvent(b))}
-----------------------
March 16th, 2011 2:58pm
Please reset the /ECP virtual directory on the CAS server, see if the issue still appears
Reset Client Access Virtual Directories
Please reproduce the issue, and then check if there’s any related trace in the IIS log
Please run ExBPA against the exchange server for health check
Please increase the diagnostic logging level of the “Control Panel” on the CAS server, reproduce the issue, and then check if there’s
any related event in the application log
Manage Diagnostic Logging LevelsPlease remember to click Mark as Answer on the post that helps you, and to click Unmark as Answer if a marked post does not actually answer your question. This can be beneficial to other community members reading the thread.
Free Windows Admin Tool Kit Click here and download it now
March 22nd, 2011 11:38pm
Hi James,
what are the consequences of resetting the client access virtual directories?
I'm having the same issue but hasn't tried your solution yet. I don't want to mess up anything on our organization.
Thanks,
John
March 24th, 2012 9:47am